﻿//*********************************************************//
//    Copyright (c) Microsoft. All rights reserved.
//    
//    Apache 2.0 License
//    
//    You may obtain a copy of the License at
//    http://www.apache.org/licenses/LICENSE-2.0
//    
//    Unless required by applicable law or agreed to in writing, software 
//    distributed under the License is distributed on an "AS IS" BASIS, 
//    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 
//    implied. See the License for the specific language governing 
//    permissions and limitations under the License.
//
//*********************************************************//

namespace Microsoft.NodejsTools.Npm.SPI {
    internal class Dependency : IDependency {
        private string _versionRangeUrlText;

        public Dependency(string name, string retreivalInfo) {
            Name = name;
            _versionRangeUrlText = retreivalInfo;
        }

        public string Name { get; private set; }

        private bool IsVersionRange {
            get { return _versionRangeUrlText.IndexOf('/') < 0; }
        }

        public IDependencyUrl Url {
            get { return IsVersionRange ? null : new DependencyUrl(_versionRangeUrlText); }
        }

        public string VersionRangeText {
            get { return IsVersionRange ? _versionRangeUrlText : null; }
        }
    }
}